251. GCE上的docker監控

WHY

之前因為架構關係,建了幾個在GCE上的docker服務。
外層主機可以透過GCP的metric監控,
但裡面的docker就不知道了。

Solution

查了一下,
cAdvisor裝起來就好了。
這是一個專門用在監控VM主機上的docker。

cAdvisor

docker-compose.yaml

services:
  cadvisor:
    container_name: cadvisor
    image: gcr.io/cadvisor/cadvisor:latest
    pull_policy: if_not_present
    restart: always
    privileged: true
    volumes:
      - /:/rootfs:ro
      - /var/run:/var/run:ro
      - /sys:/sys:ro
      - /var/lib/docker/:/var/lib/docker:ro
      - /dev/disk/:/dev/disk:ro
    ports:
      - 8888:8080
    networks:
      - zlm_network
networks:
  zlm_network:
    name: zlm_network
    driver: bridge

記得改用 gcr.io/cadvisor/cadvisor:latest
如果你查到的文章有人用 google/cadvisor:latest
這種在建制時會發生錯誤

Failed to create a Container Manager: mountpoint for cpu not found

架好後,可使用下面方法測試

curl http://127.0.0.1:8888/metrics

prometheus

要建一個新的或是拿舊的套用都可以。
重點是config,
因我的prometheus掛在GKE上面,
所以直接讓prometheus去取得GCE的metrics。

- job_name: 'game-result-stage'
  scrape_interval: 15s
  static_configs:
    - targets:
      - '<ip>:8888' 

Grafana

可直接匯入 11600 這個dashboard。

ref.